<script>
import { getDicts } from "./utils/request_sh";
export default {
  data() {
    return {
      imgUrl: [],
    };
  },

  onLaunch: function (options) {
    this.getZidian();
    /* this.showloginJs(); */
    uni.setStorageSync("imgurl", "https://www.wantongkonggu.cn/");
    console.log("App Launch");
    uni.loadFontFace({
      global: true, // 是否全局生效
      family: "ruizhi", // 定义的字体名称
      source: 'url("https://www.wantongkonggu.cn/crmebimage/rzzy.ttf")', // 字体资源的地址。建议格式为 TTF 和 WOFF，WOFF2 在低版本的iOS上会不兼容。
      success() {},
      fail() {},
      complete() {},
    });
    uni.loadFontFace({
      global: true, // 是否全局生效
      family: "dymh", // 定义的字体名称
      source: 'url("https://www.wantongkonggu.cn/crmebimage/dymh.otf")', // 字体资源的地址。建议格式为 TTF 和 WOFF，WOFF2 在低版本的iOS上会不兼容。
      success() {},
      fail() {},
      complete() {},
    });

    uni.showShareMenu({
      withShareTicket: true,
      menus: ["shareAppMessage", "shareTimeline"],
    });

    uni.getImageInfo({
      src: "https://www.wantongkonggu.cn/crmebimage/profile/upload/2025/04/23/wy_20250423173637A001.png",
    });
  },
  onShow: function () {
    this.checkVersion();
  },
  onLoad: function () {},
  methods: {
    // 核心：检查版本更新
    // 核心：检查版本更新
    checkVersion() {
      const localVersion = "2.0.77"; // 当前版本号（需与manifest.json中一致,需要跟待发布版本一致！！！！！）
      getDicts("front_update")
        .then((response) => {
          console.log("获取版本字典数据:", response);
          const dtplxList = response.data;
          if (dtplxList.length === 0) return;

          const latestVersion = dtplxList[1].dictLabel; // 服务器最新版本号
          console.log("本地版本号:", localVersion);
          console.log("服务器版本号:", latestVersion);

          // 比较版本号：若服务器版本更高，则触发更新检查
          const compareResult = this.compareVersion(latestVersion, localVersion);
          console.log("版本比较结果:", compareResult);

          if (compareResult > 0) {
            console.log("服务器版本更高，启动更新检查");
            this.startUpdateCheck(); // 启动更新检查流程
          } else {
            console.log("当前已是最新版本");
          }
        })
        .catch((error) => {
          console.error("获取版本信息失败：", error);
        });
    },
    startUpdateCheck() {
      // 1. 检测微信原生接口是否存在（彻底绕开uni封装）
      if (typeof wx.getUpdateManager !== "function") {
        // 在不支持更新管理器的环境中，仍然提示用户有新版本
        this.showUpdateDialog();
        return;
      }

      // 2. 使用微信原生方法获取 updateManager（关键修改）
      const updateManager = wx.getUpdateManager();

      // 3. 直接监听更新状态，这是最可靠的方式
      updateManager.onUpdateReady(() => {
        uni.showModal({
          title: "更新提示",
          content: "新版本已准备好，是否立即重启更新？",
          success: (confirmRes) => {
            if (confirmRes.confirm) {
              updateManager.applyUpdate();
            }
          },
        });
      });

      updateManager.onUpdateFailed(() => {
        uni.showModal({
          title: "更新失败",
          content: "新版本下载失败，请稍后重试",
          showCancel: false,
        });
      });

      // 4. 仅在确定有该方法时才调用检查更新
      try {
        // 微信小程序在调用 getUpdateManager() 后会自动检查更新
        // 我们只需监听结果即可，无需手动调用 checkForUpdate()
        if (typeof updateManager.onCheckForUpdate === "function") {
          updateManager.onCheckForUpdate((res) => {
            if (res.hasUpdate) {
              console.log("检查到新版本");
            } else {
              // 即使微信没有检测到更新，我们也要显示更新提示
              // 因为我们的版本比较逻辑显示服务器版本更高
              console.log("微信未检测到更新，但我们版本比较显示有新版本");
              this.showUpdateDialog();
            }
          });
        } else {
          // 如果没有 onCheckForUpdate 方法，我们直接显示更新提示
          console.log("无法使用微信更新检查，直接显示更新提示");
          this.showUpdateDialog();
        }
      } catch (e) {
        // 即使出现异常，也显示更新提示
        console.log("版本检查异常，直接显示更新提示");
        this.showUpdateDialog();
      }
    },
    showUpdateDialog() {
      uni.showModal({
        title: "发现新版本",
        content: "检测到新版本，建议立即更新以获得更好的体验。",
        showCancel: false,
        confirmText: "立即更新",

        success: (res) => {
          if (res.confirm) {
            // 用户选择更新，尝试重新检查更新
            console.log("用户选择手动更新");
            // 可以在这里添加跳转到应用商店或重新初始化更新检查的逻辑
          } else if (res.cancel) {
            console.log("用户选择稍后更新");
          }
        },
      });
    },
    // 辅助方法：比较版本号（v1 > v2 返回1，相等返回0，v1 < v2 返回-1）
    compareVersion(v1, v2) {
      const arr1 = v1.split(".").map(Number);
      const arr2 = v2.split(".").map(Number);
      const maxLen = Math.max(arr1.length, arr2.length);

      for (let i = 0; i < maxLen; i++) {
        const num1 = arr1[i] || 0;
        const num2 = arr2[i] || 0;
        if (num1 > num2) return 1;
        if (num1 < num2) return -1;
      }
      return 0;
    },
    getZidian() {
      getDicts("front_shenhe")
        .then((response) => {
          let banbenhao = "1.0.1";
          let dtplxList = response.data;
          // 默认设置为true（显示按钮）
          this.$globalData.seeButton = true;
          dtplxList.forEach((item) => {
            if (item.dictLabel == banbenhao && item.dictValue == "0") {
              // 只有当dictValue为"0"时才隐藏按钮
              this.$globalData.seeButton = false;
            }
          });
        })
        .catch((error) => {
          console.error("获取字典数据失败:", error);
          // 出错时默认显示按钮
          this.$globalData.seeButton = true;
        });
    },
    async init() {
      var arr = [];
      for (var i = 0; i < this.imgUrl.length; i++) {
        uni.getImageInfo({
          src: "https://www.wantongkonggu.cn/" + this.imgUrl[i].merAvatar,
          success: (res) => {},
        });
      }
    },
  },
  onHide: function () {},
};
</script>

<style lang="scss">
/*每个页面公共css */
@import "@/uni_modules/uni-scss/index.scss";
/* #ifndef APP-NVUE */
@import "@/static/customicons.css";
// 设置整个项目的背景色
@import "@/uni_modules/uview-ui/index.scss";

page {
  background-color: #f5f5f5;
}

/* #endif */
.example-info {
  font-size: 14px;
  color: #333;
  padding: 10px;
}
</style>
